import os

from dotenv import load_dotenv
from fastapi import FastAPI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langserve import add_routes

# 加载.env文件
load_dotenv()

# 调用大语言模型
# 创建模型
model = ChatOpenAI(
	model='qwen-plus',
	api_key=os.getenv("OPENAI_API_KEY"),
	base_url=os.getenv("BASE_URL"),
)

# 获取解析器
parser = StrOutputParser()

# 提示词模板
prompt_template = ChatPromptTemplate.from_messages([
	('system', '请将下面的内容翻译成{language}'),
	('user', "{text}")
])

# 获得链
chain = prompt_template | model | parser

# 把我们的程序部署成服务
# 创建fastAPI的应用
app = FastAPI(title='我的Langchain服务', version='V1.0', description='使用Langchain翻译任何语句的服务器')

add_routes(
	app,
	chain,
	path="/chainDemo",
)

if __name__ == '__main__':
	import uvicorn

	uvicorn.run(app, host="localhost", port=8000)
